package jp.co.nes.awssupport.common.utility;

import java.util.ArrayList;
import java.util.List;

import com.amazonaws.regions.Regions;

/**
 * 有効なリージョンに関するクラス。<br>
 * 下記リージョンにアクセスしようとすると、アクセスエラーとなるため除外する。
 * <ul>
 * <li>{@link Regions#CN_NORTH_1}
 * <li>{@link Regions#CN_NORTHWEST_1}
 * <li>{@link Regions#GovCloud}
 * </ul>
 */
public class AwsValidRegions {

    /** 有効なリージョンのリスト */
    private static List<Regions> regionsList;

    /** 有効なリージョン名のリスト */
    private static List<String> regionsNameList;

    static {
        regionsList = new ArrayList<>();
        regionsNameList = new ArrayList<>();

        for (Regions region : Regions.values()) {
            if (!Regions.CN_NORTH_1.getName().equals(region.getName())
                    && !Regions.CN_NORTHWEST_1.getName().equals(region.getName())
                    && !Regions.GovCloud.getName().equals(region.getName())) {
                regionsList.add(region);
                regionsNameList.add(region.getName());
            }
        }
    }

    /**
     * 有効なリージョンのリストを取得する。<br>
     * @return 有効なリージョンのリスト
     */
    public static List<Regions> getRegions() {
        return regionsList;
    }

    /**
     * 有効なリージョン名のリストを取得する。<br>
     * @return 有効なリージョン名のリスト
     */
    public static List<String> getRegionsName() {
        return regionsNameList;
    }
}
